예외 처리(Exception handling)예외란 프로그램이 동작하는 과정에서 발생하는 예상치 못한 오류(Error)를 의미한다.
C++에서는 발생할 가능성이 높은 오류에 대해서 예외 처리(Exception Handling)을 할 수 있도록 해준다.
Try: 특정한 코드 블록에서 예외가 발생할 수 있음을 명시한다.
Catch: 발생한 예외에 대해서 핸들러가 특정한 내용을 처리한다.
Throw: Try 구문에서 발생한 오류를 전달한다.
#include <iostream>
using namespace std;
int main(void){
int a=7, b=0;
try{
if(b==0){
throw "0으로 나눌 수 없습니다.";
}
cout<<a/b<<'\n';
}
catch(const char* str){
cout<<str<<'\n';
}
system("pause");
return 0;
}
0으로 나눌 수 없습니다.
sh: pause: command not found
#include <iostream>
using namespace std;
template<typename T>
class Data{
private:
T data;
public:
Data(T data):data(data){}
T getData(){ return data; }
Data<T> operator/(const Data<T>& other){
if(other.data==0){
throw 0;
}
return Data(data/other.data);
}
};
int main(void){
try{
Data<int> a(7);
Data<int> b(0);
Data<int> result=a/b;
cout<<result.getData()<<'\n';
}
catch(int e){
if(e==0){
cout<<"0으로 나눌 수 없습니다.\n";
}
}
system("pause");
}
0으로 나눌 수 없습니다.
sh: pause: command not found
try{
}
catch(exception& e){
cerr<<e.what()<<'\n'\
}